local oo = require("SharedLibs.BaseLib");
local co = require("SharedLibs.CoroLib");


--- 注意：IProperty也是一个ISignal，只不过IProperty是有状态的。
local IProperty = oo.interface();

function IProperty:On(listener) end
function IProperty:Off(listener) end

function IProperty:GetValue() end
function IProperty:SetValue(value) end
--- 调用这个方法时, 即使value没有变化, 也会触发changed事件.
--- 和Signal.Emit起相同的作用.
--- 如果value传入的为nil, 那么直接Emit缓存的数值
function IProperty:EmitValue(value) end

--- 清空数据
function IProperty:Clear() end

return IProperty;
